# 开发服务器

Rspack CLI 内置了 `@rspack/dev-server` 用于开发调试，它的能力与 `webpack-dev-server` 相似，内置了 HMR、代理服务器等功能。

:::tip

`@rspack/dev-server` 中使用了 `webpack-dev-server@5` ，与 `webpack-dev-server@4` 有一些差异。

- webpack-dev-server v5 最低支持的 Node.js 版本为 18.12.0。
- 配置选项发生了若干变更，请参阅 [webpack-dev-server v5 的迁移指南](https://github.com/webpack/webpack-dev-server/blob/master/migration-v5.md)。

:::

### HMR

Rspack 在 dev 模式下默认开启了 HMR，你也可以在 Rspack 配置中设置 `devServer.hot` 选项来关闭 HMR。

```js title="rspack.config.mjs"
export default {
  devServer: {
    hot: false,
  },
};
```

:::warning
不要在 [output.cssFilename](/config/output#outputcssfilename) 中包含 `[hash]` 或者 `[contenthash]`，否则 CSS 的 HMR 可能会不生效。
:::

### Proxy

Rspack 内置了一个简单的代理服务器，你可以在 Rspack 配置中添加 `devServer.proxy` 选项来开启代理服务器。devServer 内部使用了 [http-proxy-middleware](https://github.com/chimurai/http-proxy-middleware) 来实现代理功能。例如我们可以通过如下方式将 `/api` 代理到 `http://localhost:3000`。

```js title="rspack.config.mjs"
export default {
  devServer: {
    proxy: [
      {
        context: ['/api'],
        target: 'http://localhost:3000',
        changeOrigin: true,
      },
    ],
  },
};
```

更多关于 devServer 的配置项请参考 [devServer](/config/dev-server.html)。
